package finalapp.exercise.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

/**
 * Clase de apoyo para la gestion de la creación de la base de datos y mantenimiento de versiones
 * de la misma
 * @author Alejandro Villamarin
 *
 */
public class LocationsSQLHelper extends SQLiteOpenHelper {
	
	/** 
	 * Sentencia de creación de la base de datos
	 */
	private static final String DB_TABLE_CREATE = 
			"create table if not exists " + LocationsDB.Places.TABLE_NAME + " (" + 
			LocationsDB.Places._ID + " integer primary key autoincrement," +
			LocationsDB.Places.NAME + " text," +
			LocationsDB.Places.DESC + " text," + 
			LocationsDB.Places.LATITUDE + " real," +
			LocationsDB.Places.LONGITUDE + " real," +
			LocationsDB.Places.PICTURE + " text" +  ")";

	/** 
	 * Constructor
	 * @param context
	 */
	public LocationsSQLHelper(Context context) {
		super(context, LocationsDB.DB_NAME, null, LocationsDB.DB_VERSION);
	}
	
	/** 
	 * Metodo sobreescrito que se llama cuando se crea la base de datos
	 * @param	db	El objeto SQLiteDatabase que permite la ejecucion de sentencias SQL
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		//comprobamos si esta en modo lectura y en ese caso la abrimos para poder escribir
		if(db.isReadOnly()) {
			db = getWritableDatabase();
		}
		//ejecutar la query de creacion de bd
		db.execSQL(DB_TABLE_CREATE);
	}

	/** 
	 * Metodo sobreescrito que se llama cuando se modifica el esquema de la bd
	 * @param 	arg0		El objeto SQLiteDatabase utilizado
	 * @param	oldVersion 	El numero de la version vieja
	 * @param	newVersion	El numero de la version nueva
	 *  
	 */
	@Override
	public void onUpgrade(SQLiteDatabase arg0, int oldVersion, int newVersion) {
		//de momento solo logeamos
		Log.d("LocationsSQLHelper", "Nueva version de la bd es" + newVersion);
	}

}


